package cn.actoncode.boot.module.ai.dal.redis.auth;

import cn.actoncode.boot.module.ai.dal.redis.RedisKeyConstants;
import jakarta.annotation.Resource;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Repository;

import java.util.concurrent.TimeUnit;

@Repository
public class LoginMaCodeRedisDAO {

    @Resource
    private StringRedisTemplate stringRedisTemplate;

    public String get(String sk) {
        String redisKey = formatKey(sk);
        return stringRedisTemplate.opsForValue().get(redisKey);
    }

    public void set(String sk) {
        String redisKey = formatKey(sk);
        stringRedisTemplate.opsForValue().set(redisKey, sk);

        // 设置5分钟过期时间
        stringRedisTemplate.expire(redisKey, 5, TimeUnit.MINUTES);
    }

    public void delete(String sk) {
        String redisKey = formatKey(sk);
        stringRedisTemplate.delete(redisKey);
    }

    private static String formatKey(String sk) {
        return String.format(RedisKeyConstants.LOGIN_SK, sk);
    }
}
